package JavaSE.BLS.Interface;


/**
 *
 * 接口中的成员已经被限定为固定几种
 * 1、定义变量，是固定的修饰符：public static final ,所以接口中的变量也称为常量
 * 2、定义方法，也是固定的修饰符：public abstract,接口中的成员都是公共的。
 *
 * 接口和抽象类的区别：
 * 0.接口可以解决Java中无法多继承的问题。
 * Java多继承的弊端在于：多继承时，当父类中有多个相同的功能时，子类调用会不确定调用父类中的哪个主体。
 * 而在接口中，所有的功能都只有方法名称，没有具体实现。
 *
 * 继承父类实现子类的基本功能，实现接口完成子类功能的拓展。
 *
 * 1.抽象类可以有构造方法，接口中不能有构造方法。
 * 2.抽象类中可以有普通成员变量，接口中没有普通成员变量
 * 3.抽象类中可以包含非抽象的普通方法，接口中的所有方法必须都是抽象的，不能有非抽象的普通方法。
 * 4.抽象类中的抽象方法的访问类型可以是public，protected，但接口中的抽象方法只能是public类型的，并且默认即为public abstract类型。
 * 5.抽象类中可以包含静态方法，接口中不能包含静态方法
 * 6.抽象类和接口中都可以包含静态成员变量，抽象类中的静态成员变量的访问类型可以任意，
 *   但接口中定义的变量只能是public static final类型，并且默认即为public static final类型。
 * 7.一个类可以实现多个接口，但只能继承一个抽象类。
 * 8.继承一个抽象类的时候，子类必须定义父类中的所有抽象方法
 *
 * 在设计类的时候，首先考虑用接口抽象出类的特性，当你发现某些方法可以复用的时候，可以使用抽象类来复用代码。\
 * 简单说，接口用于抽象事物的特性，抽象类用于代码复用。
 */
public interface InterfaceClass1
{

    public static final int num = 10;
    
    public void open();
    public void close();
    public abstract int down();
}
